{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Создание объекта Series в Pandas\n",
    "Одним из основных объектов, которые используются в Pandas, является объект Series.\n",
    "\n",
    "Объект Series - это одномерный массив с метками, который может содержать данные любого типа (числовые, строковые, логические и т.д.). Каждый элемент объекта Series имеет свою уникальную метку (индекс), которая может быть явно задана пользователем или сгенерирована автоматически.\n",
    "\n",
    "Объект Series можно создать из различных источников данных, например, из списка, массива NumPy или словаря Python. Для создания объекта Series можно использовать функцию pd.Series():"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    1\n",
      "1    2\n",
      "2    3\n",
      "3    4\n",
      "4    5\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# создание объекта Series из списка\n",
    "my_list = [1, 2, 3, 4, 5]\n",
    "s = pd.Series(my_list)\n",
    "print(s)\n",
    "#0    1\n",
    "#1    2\n",
    "#2    3\n",
    "#3    4\n",
    "#4    5\n",
    "#dtype: int64"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    1\n",
      "1    2\n",
      "2    3\n",
      "3    4\n",
      "4    5\n",
      "dtype: int32\n"
     ]
    }
   ],
   "source": [
    "# создание объекта Series из массива NumPy\n",
    "import numpy as np\n",
    "my_array = np.array([1, 2, 3, 4, 5])\n",
    "s = pd.Series(my_array)\n",
    "print(s)\n",
    "#0    1\n",
    "#1    2\n",
    "#2    3\n",
    "#3    4\n",
    "#4    5\n",
    "#dtype: int32"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    1\n",
      "b    2\n",
      "c    3\n",
      "d    4\n",
      "e    5\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "# создание объекта Series из словаря Python\n",
    "my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}\n",
    "s = pd.Series(my_dict)\n",
    "print(s)\n",
    "#a    1\n",
    "#b    2\n",
    "#c    3\n",
    "#d    4\n",
    "#e    5\n",
    "#dtype: int64"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Существуют и другие способы создания объекта Series в Pandas.\n",
    "\n",
    "Создание объекта Series из скалярного значения\n",
    "\n",
    "Можно создать объект Series, состоящий из заданного количества одинаковых значений."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    5\n",
      "b    5\n",
      "c    5\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# создание объекта Series из скалярного значения\n",
    "s = pd.Series(5, index=['a', 'b', 'c'])\n",
    "\n",
    "print(s)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Создание объекта Series из другого объекта Series\n",
    "\n",
    "Можно создать новый объект Series на основе уже существующего объекта Series."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    1\n",
      "1    2\n",
      "2    3\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# создание объекта Series\n",
    "s1 = pd.Series([1, 2, 3])\n",
    "\n",
    "# создание нового объекта Series на основе существующего\n",
    "s2 = pd.Series(s1)\n",
    "\n",
    "print(s2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Следует иметь в виду, что функция pd.Series принимает множество аргументов, из которых обязательным является аргумент data, в который передается структура данных для преобразования в объект типа Series. Также в некоторых примерах выше использовался параметр index,  в который передается список с наименованиями индексов создаваемого объекта. Если в Series передается словарь, то автоматически его ключи становятся индексами."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    1\n",
      "b    2\n",
      "c    3\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "data = [1, 2, 3]\n",
    "series = pd.Series(data, index=['a', 'b', 'c'])\n",
    "print(series)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    1\n",
      "b    2\n",
      "c    3\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "data = {'a': 1, 'b': 2, 'c': 3}\n",
    "\n",
    "series = pd.Series(data)\n",
    "print(series)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    1\n",
      "1    2\n",
      "2    3\n",
      "3    4\n",
      "4    5\n",
      "dtype: int32\n",
      "<class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "arr = np.arange(1, 6)\n",
    "\n",
    "series = pd.Series(arr)\n",
    "print(series)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a    0\n",
      "b    0\n",
      "c    0\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "series = pd.Series(data=0, index=['a', 'b', 'c'])\n",
    "print(series)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    (a, 4)\n",
      "1    (b, 6)\n",
      "2    (c, 2)\n",
      "dtype: object\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "symbols = input().split()\n",
    "numbers = input().split()\n",
    "series = pd.Series(zip(symbols, numbers))\n",
    "print(series)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0       banana\n",
      "1      ananasa\n",
      "2    mandarina\n",
      "3     apelsina\n",
      "dtype: object\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "words = input().split()\n",
    "series = pd.Series(words)\n",
    "print(series)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a     True\n",
      "b    False\n",
      "c     True\n",
      "d    False\n",
      "e    False\n",
      "f     True\n",
      "dtype: bool\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from string import ascii_lowercase\n",
    "\n",
    "binary_sequence = [bool(int(number)) for number in input().split()]\n",
    "\n",
    "series = pd.Series(binary_sequence, index=list(ascii_lowercase)[:len(binary_sequence)])\n",
    "print(series)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    2022-01-01\n",
      "1    2022-01-02\n",
      "2    2022-01-03\n",
      "dtype: object\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "date =  ['2022-01-01', '2022-01-02', '2022-01-03']\n",
    "\n",
    "print(pd.Series(date))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1    2\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "\n",
    "def create_data(n, m):\n",
    "    dct = {}\n",
    "    k = 1\n",
    "    while n <= m:\n",
    "        dct[k] = n \n",
    "        k += 2\n",
    "        n += 10\n",
    "    return pd.Series(dct)\n",
    "\n",
    "n, m = map(int, input().split())\n",
    "print(create_data(n, m))\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RangeIndex(start=0, stop=26, step=1)\n",
      "['a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r'\n",
      " 's' 't' 'u' 'v' 'w' 'x' 'y' 'z']\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from string import ascii_lowercase\n",
    "\n",
    "letters_data = pd.Series(list(ascii_lowercase))\n",
    "print(letters_data.index, letters_data.values, sep='\\n')\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
